[INFO] cloning repository https://github.com/hkamran/RustyBoy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hkamran/RustyBoy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhkamran%2FRustyBoy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhkamran%2FRustyBoy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c47eb7a2ca2b88a2a43bb407d3abab204fa7d998
[INFO] building hkamran/RustyBoy against master#881c1ac408d93bb7adaa3a51dabab9266e82eee8 for issue-85264
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhkamran%2FRustyBoy" "/workspace/builds/worker-1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/hkamran/RustyBoy on toolchain 881c1ac408d93bb7adaa3a51dabab9266e82eee8
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/hkamran/RustyBoy
[INFO] finished tweaking git repo https://github.com/hkamran/RustyBoy
[INFO] tweaked toml for git repo https://github.com/hkamran/RustyBoy written to /workspace/builds/worker-1/source/Cargo.toml
[INFO] crate git repo https://github.com/hkamran/RustyBoy already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Found `debug_assertions` in `target.'cfg(...)'.dependencies`. This value is not supported for selecting dependencies and will not work as expected. To learn more visit https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#platform-specific-dependencies
[INFO] [stderr] warning: unused manifest key: target.wasm32-unknown-unknown.rustflags
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 4d200b3e9eb1f9047c0c749cf4b5080b13219dc2f44a33e7347ddeb971a87154
[INFO] running `Command { std: "docker" "start" "-a" "4d200b3e9eb1f9047c0c749cf4b5080b13219dc2f44a33e7347ddeb971a87154", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4d200b3e9eb1f9047c0c749cf4b5080b13219dc2f44a33e7347ddeb971a87154", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4d200b3e9eb1f9047c0c749cf4b5080b13219dc2f44a33e7347ddeb971a87154", kill_on_drop: false }`
[INFO] [stdout] 4d200b3e9eb1f9047c0c749cf4b5080b13219dc2f44a33e7347ddeb971a87154
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] efaf2fea1a1ba94584e9b9ce30bf007626fb9d7e286eee18de8c9c877a608b9a
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "efaf2fea1a1ba94584e9b9ce30bf007626fb9d7e286eee18de8c9c877a608b9a", kill_on_drop: false }`
[INFO] [stderr] warning: Found `debug_assertions` in `target.'cfg(...)'.dependencies`. This value is not supported for selecting dependencies and will not work as expected. To learn more visit https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#platform-specific-dependencies
[INFO] [stderr] warning: unused manifest key: target.wasm32-unknown-unknown.rustflags
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling syn v1.0.54
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.69
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling serde v1.0.118
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling bumpalo v3.4.0
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]    Compiling serde_json v1.0.60
[INFO] [stderr]    Compiling itoa v0.4.6
[INFO] [stderr]    Compiling wasm-bindgen v0.2.69
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling serde_derive v1.0.118
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.69
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.69
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.69
[INFO] [stderr]    Compiling js-sys v0.3.46
[INFO] [stderr]    Compiling console_error_panic_hook v0.1.6
[INFO] [stderr]    Compiling web-sys v0.3.46
[INFO] [stderr]    Compiling rust-webpack-template v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::logger::log`
[INFO] [stdout]  --> src/cpu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::logger::log;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::psg::Psg`
[INFO] [stdout]  --> src/mmu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::psg::Psg;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/mmu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/mmu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::CanvasRenderingContext2d`
[INFO] [stdout]  --> src/console.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::CanvasRenderingContext2d;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Joypad`
[INFO] [stdout]  --> src/console.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::joypad::{Joypad, Button};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::logger::log`
[INFO] [stdout]  --> src/ppu.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::logger::log;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Mmu`
[INFO] [stdout]  --> src/ppu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::mmu::Mmu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::CanvasRenderingContext2d`
[INFO] [stdout]  --> src/ppu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use web_sys::CanvasRenderingContext2d;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `js_sys::*`
[INFO] [stdout]  --> src/ppu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use js_sys::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/ppu.rs:305:41
[INFO] [stdout]     |
[INFO] [stdout] 305 |         for display_x in 0 .. SCREEN_W {;
[INFO] [stdout]     |                                         ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/ppu.rs:307:32
[INFO] [stdout]     |
[INFO] [stdout] 307 |             let mut window_x = (-((self.window_x_coord as i32) - 7) + (display_x as i32));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/cartridge.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/cartridge.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ppu::Ppu`
[INFO] [stdout]  --> src/dma.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ppu::Ppu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/logger.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/logger.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Mmu`
[INFO] [stdout]  --> src/psg.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mmu::Mmu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/lib.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::JsCast`
[INFO] [stdout]   --> src/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use wasm_bindgen::JsCast;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CanvasRenderingContext2d`, `HtmlCanvasElement`
[INFO] [stdout]   --> src/lib.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | use web_sys::{CanvasRenderingContext2d, HtmlCanvasElement};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile_x` is never read
[INFO] [stdout]    --> src/ppu.rs:314:21
[INFO] [stdout]     |
[INFO] [stdout] 314 |             let mut tile_x= 0;
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile_y` is never read
[INFO] [stdout]    --> src/ppu.rs:315:21
[INFO] [stdout]     |
[INFO] [stdout] 315 |             let mut tile_y= 0;
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pixel_x` is never read
[INFO] [stdout]    --> src/ppu.rs:317:21
[INFO] [stdout]     |
[INFO] [stdout] 317 |             let mut pixel_x= 0;
[INFO] [stdout]     |                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pixel_y` is never read
[INFO] [stdout]    --> src/ppu.rs:318:21
[INFO] [stdout]     |
[INFO] [stdout] 318 |             let mut pixel_y= 0;
[INFO] [stdout]     |                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile_map_base_address` is never read
[INFO] [stdout]    --> src/ppu.rs:320:21
[INFO] [stdout]     |
[INFO] [stdout] 320 |             let mut tile_map_base_address= 0;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]   --> src/dma.rs:35:29
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn reset(&mut self, model: GameboyType) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]   --> src/timer.rs:33:29
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn reset(&mut self, model: GameboyType) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]   --> src/joypad.rs:30:29
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn read_byte(&self, address: u16) -> u8 {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]   --> src/joypad.rs:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn write_byte(&mut self, address: u16, value: u8) {
[INFO] [stdout]    |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut window_y = if (-(self.window_y_coord as i32) + (display_y as i32)) >= 0 { self.wly as i32 } else { -1 };
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:307:17
[INFO] [stdout]     |
[INFO] [stdout] 307 |             let mut window_x = (-((self.window_x_coord as i32) - 7) + (display_x as i32));
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:851:13
[INFO] [stdout]     |
[INFO] [stdout] 851 |         let mut pal_num: usize;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:852:13
[INFO] [stdout]     |
[INFO] [stdout] 852 |         let mut col_num: usize;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:853:13
[INFO] [stdout]     |
[INFO] [stdout] 853 |         let mut palette: &mut [u8];
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:854:13
[INFO] [stdout]     |
[INFO] [stdout] 854 |         let mut byte_index;
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `FILE_PATH`
[INFO] [stdout]  --> src/logger.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | const FILE_PATH: &str = "cpu.log";
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static is never used: `FILE`
[INFO] [stdout]  --> src/logger.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | static mut FILE: Option<File> = Option::None;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `log`
[INFO] [stdout]   --> src/logger.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn log(value: String) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `volumes`
[INFO] [stdout]   --> src/psg.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     volumes: [f32; 0xF],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `ch0`
[INFO] [stdout]   --> src/psg.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     ch0: u8, // Tone and sweep
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `ch1`
[INFO] [stdout]   --> src/psg.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ch1: u8, // Tone
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `ch2`
[INFO] [stdout]   --> src/psg.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     ch2: u8, // Wave
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `ch3`
[INFO] [stdout]   --> src/psg.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     ch3: u8, // Noise
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/logger.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         FILE.as_mut().unwrap().write_all((value + "\n").as_bytes());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 45 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::psg`
[INFO] [stdout]  --> src/mmu.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::psg::Psg;
[INFO] [stdout]   |            ^^^ could not find `psg` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::logger::log`
[INFO] [stdout]  --> src/cpu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::logger::log;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/mmu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/mmu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::CanvasRenderingContext2d`
[INFO] [stdout]  --> src/console.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::CanvasRenderingContext2d;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Joypad`
[INFO] [stdout]  --> src/console.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::joypad::{Joypad, Button};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/cartridge.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/cartridge.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::logger::log`
[INFO] [stdout]  --> src/ppu.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::logger::log;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Mmu`
[INFO] [stdout]  --> src/ppu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::mmu::Mmu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::CanvasRenderingContext2d`
[INFO] [stdout]  --> src/ppu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use web_sys::CanvasRenderingContext2d;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `js_sys::*`
[INFO] [stdout]  --> src/ppu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use js_sys::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/ppu.rs:305:41
[INFO] [stdout]     |
[INFO] [stdout] 305 |         for display_x in 0 .. SCREEN_W {;
[INFO] [stdout]     |                                         ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/ppu.rs:307:32
[INFO] [stdout]     |
[INFO] [stdout] 307 |             let mut window_x = (-((self.window_x_coord as i32) - 7) + (display_x as i32));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ppu::Ppu`
[INFO] [stdout]  --> src/dma.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ppu::Ppu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/logger.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/logger.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 16 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-webpack-template`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "efaf2fea1a1ba94584e9b9ce30bf007626fb9d7e286eee18de8c9c877a608b9a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efaf2fea1a1ba94584e9b9ce30bf007626fb9d7e286eee18de8c9c877a608b9a", kill_on_drop: false }`
[INFO] [stdout] efaf2fea1a1ba94584e9b9ce30bf007626fb9d7e286eee18de8c9c877a608b9a
